227. 基本计算器 II
https://leetcode-cn.com/problems/basic-calculator-ii/
- 提交时间:2022-02-22 13:15:27
- 执行用时:100 ms, 在所有 Python3 提交中击败了32.38%的用户
- 内存消耗:22.1 MB, 在所有 Python3 提交中击败了7.38%的用户
- 通过测试用例:109 / 109
import re
class Solution:
def calculate(self, s: str) -> int:
# print("s", s)
numList = ["+"]
for item in re.findall("(\d+|\+|-|\\*|/)", s):
# print(item)
#======为符号
if not item.isnumeric():
numList.append(item)
continue
#======为整数
if numList == []:
numList.append(float(item))
continue
if numList[-1] == "+":
numList.append(float(item))
continue
if numList[-1] == "-":
numList.append(float(item))
continue
if numList[-1] == "/":
numList.pop()
numList.append(numList.pop() // float(item))
continue
if numList[-1] == "*":
numList.pop()
numList.append(numList.pop() * float(item))
continue
# print("ret", numList)
ret = 0
for x in range(0, len(numList), 2):
if numList[x] == "+":
ret += float(numList[x+1])
if numList[x] == "-":
ret -= float(numList[x+1])
return int(ret)